User management¶
Warning
When the system is commissioned, you are prompted to assign a user and password. This initially created user is automatically assigned the admin role.
If you lose the user or password, you are permanently locked out of the system. The project configuration and all recorded data may be lost. Neither the device manufacturer nor the software developer has any means of access.
Save your login details immediately using a suitable tool! (KeePass 2 or similar)
Overview¶
The user management enables centralized and secure administration of user accounts. It is based on a role-based authorization concept that allows flexible assignment of access rights. Authentication is performed via standardized interfaces such as OAuth 2.0 and OpenID Connect.
User management is located in the navigation under Settings > User Management. It is divided into the following areas, which can be reached via the navigation or the start page of user management:
If the required permission for an action is missing, the corresponding button or menu entry is disabled. When hovering over it with the mouse, the hint Missing permission is displayed. See User management permissions.
Administrators¶
User management includes the Administrator system role. It is automatically created by the system and cannot be deleted. It can be renamed.
A user becomes an administrator (admin) when the administrator role is assigned to them. The user who is initially created on the system is automatically assigned this role.
System Role: Administrator¶
The Administrator role implicitly has all system privileges. This also applies automatically when extensions are installed that expand the set of privileges. No privileges can be explicitly assigned to the Administrator role.
The administrator role can be assigned to any number of users. These admin users can be identified in the user overview by the label Admin next to their names.
Edit Admin Users¶
For security reasons, write access in user management is not sufficient for managing admin users. Administrator access is required for the following actions:
Rename Admin User
Delete Admin User
Revoke the Admin role from an admin user
Assign the admin role to a user
Before performing any action that reduces the number of users with admin roles, the system checks whether at least one active user with an admin role will remain in the system after the action. If this check returns a negative result, the action cannot be executed.
The following actions are affected:
Deactivate Admin User
Delete Admin User
Revoke the Admin role from an admin user
User¶
The page displays an overview of users in the system and provides entry points for editing them.
Add user: Opens the dialog for adding a user.
Name: Unique name of a user. Specified when the user is created and displayed in overviews. Can be changed or anonymized later. The following characters are allowed:
Capital letters [A-Z]
Lowercase letters [a-z]
Digits [0-9]
Underscore _
Hyphen -
Maximum length: 64 characters
Roles: Number of roles assigned to the user. When you hover over the info icon, a tooltip with the names of the roles is displayed.
Last login: Timestamp of the last login time in local time.
Status: A user can have three different statuses:
Online: The user is active and logged into the system.
Offline: The user is active but not logged into the system.
Disabled: The user is disabled. It is no longer possible to log in to the system.
Menu: Entry point for managing a user. The following options are available:
Edit: Opens the dialog for editing the user. Here, you can edit the same properties as in Add user.
Logout: The user’s sessions are terminated immediately. The entry is only active for users with the status Online. For users other than the logged-in user, administrative access is required.
Deactivate: The user is deactivated. If the user has an open session at the time of deactivation, it is terminated. Deactivated users can no longer log in to the system. On a login attempt, the user only receives the generic message that the username or password is invalid. The message must be generic so as not to give a potential attacker any information about why a login attempt failed.
Activate: Displayed instead of Deactivate for deactivated users. The user can log in again. This is also how users who were blocked by the Login policies are unlocked.
Change password: Opens the dialog for setting the password. For security reasons, a password change always logs out all sessions of the affected user. After a password has been set by a third party, the user must assign their own password at the next login before using the system.
Delete user: After confirmation in the Delete user dialog, the user is deleted from the system. This action cannot be undone.
Deactivate, Activate and Change password require administrative access for user management. Deactivating and deleting are not possible if no active admin user would remain in the system as a result. In this case, the hint At least one admin must be available is displayed.
Add user¶
Name: Unique name of a user. Specified when the user is created and displayed in overviews. Can be changed or anonymized later. The following characters are allowed:
Capital letters [A-Z]
Lowercase letters [a-z]
Digits [0-9]
Underscore _
Hyphen -
Maximum length: 64 characters
Password: Initial password for the user. The password must comply with the parameters of the password policy that has been set. When logging in for the first time, the user will be prompted to assign their own password before they can use the system.
Repeat password: Repeat the password to ensure that it does not contain any errors.
Roles: Using the dropdown menu, one or more roles can be assigned to a user directly during creation. Role assignment is optional and can alternatively be done later by editing the user or the corresponding roles.
Roles¶
The page shows an overview of the roles in the system and provides entry points for editing them.
Add role: Opens the dialog for adding a role.
Role: Unique name of the role. Specified when creating a role and displayed in overviews. Can be changed later.
Permissions: Number of permissions assigned to a role.
Users: Number of users assigned to a role. When you hover over the info icon, a tooltip with the names of the users is displayed.
Menu: Entry point for managing a role. The following options are available:
Edit: Opens the dialog for editing the role. Here, you can edit the same properties as in Add role.
Delete: After confirmation, the role is deleted from the system. The confirmation dialog Delete role shows how many users the role is assigned to. This action cannot be undone. The Administrator role cannot be deleted.
Add role¶
Tab Name & permissions: The dialog has two tabs. In the first tab, the role name and the associated permissions can be assigned.
Name: Unique name of the role. Mandatory field. Displayed in overviews. Can be changed later.
Permissions: List of the system permissions, grouped by category. Permissions can be added to or removed from this role using the checkboxes. All Permissions selects or deselects all permissions at once. No selection is possible for the Administrator role, as it has all permissions by default.
Tab Assigned users: In the second tab, users can be assigned directly to a role while editing it. Alternatively, roles can be assigned via the users.
Users: List of users of the system. Users can be added or removed from this role by selecting or deselecting the checkboxes.
Permissions¶
The page shows an overview of the system permissions and provides insight into which roles the permissions are assigned to. Direct interaction is not possible on this page.
Category: Name of the component that provides the permission.
Authorization: Name and authorization level of an individual authorization. A distinction is often made between read and write permissions. These authorizations can be assigned individually.
Roles: Number of roles in which an authorization has been assigned. When you hover over the info icon, a tooltip with the names of the roles is displayed.
User management permissions¶
User management provides three permissions: User management: read access, User management: write access and User management: administrate access. No permission is required to set or change your own password. If the permission for a function is missing, the corresponding entry point is disabled and marked with the hint Missing permission. The following list shows the scope of functions covered by each permission.
Read access
View user management and subpages in the navigation.
Access user management pages and display data.
Write access
Add, edit, and delete users. Restriction: Set passwords for other users.
Add, edit, and delete roles. This also includes assigning permissions and users to roles.
Add, edit and delete Clients.
Edit the LDAP configuration.
If admin users are affected, administrative privileges are always required.
Administrative access
Set passwords for other users.
End active sessions of users.
Deactivate users so that they can no longer log in to the system, and activate them again.
Edit User settings.
Rename, deactivate, or delete an admin user.
Remove the admin role from admin users.
Assign the admin role to users.
Clients¶
Clients allow external programs, e.g. scripts, control systems or other services, automated access to the interfaces of the system without a user account and without interactive login. Each client receives a Client id and a Client secret. With these, the external program requests an access token via OAuth 2.0 (Client Credentials Flow), see Requesting access tokens for clients.
The most important properties at a glance:
Permissions are assigned directly to the client, not via roles.
The client secret is displayed only once when the client is created. The system stores it only as a hash value.
An access token is valid for 5 minutes and must then be requested again.
Logged-in clients are displayed under Sessions.
Add client: Opens the Add client dialog, see Add client. Requires write access for user management.
Search field: Filters the list of clients.
Name: Name of the client. Clients without a name are displayed as
-.Client id: Unique identifier of the client. It is assigned automatically on creation (UUID) and cannot be changed.
Menu: Contains the entries
EditandDelete.
The system automatically creates a client that the web interface uses for user login. Its name depends on the target system. It cannot be edited or deleted. The corresponding entries are disabled with the hint Client cannot be modified.
Add client¶
Name: Name of the client. Mandatory field. 1 to 63 characters from lowercase letters [a-z], digits [0-9] and underscore _ are allowed. The name must start with a letter and must not end with an underscore. The name must not match the name of a user.
Permissions: List of the system permissions, grouped by category. All Permissions selects or deselects all permissions at once. At least one permission must be selected. The client can only request the permissions selected here.
The Save button is only enabled once at least one permission is selected. If the name does not meet the requirements, the client is not created and an error message is displayed.
After saving, the dialog shows the Client id and the Client secret of the new client. The copy icon copies the values to the clipboard, the eye icon reveals the client secret. OK closes the dialog.
Important
The client secret cannot be displayed or recovered after the dialog is closed. Store it in a safe place. If the client secret is no longer known, create a new client and delete the previous one.
Edit client¶
Edit in the menu opens the Edit client dialog. It corresponds to the dialog for adding and is prefilled with the name and permissions of the client. The client ID and client secret remain unchanged when editing.
Changed permissions apply to newly requested access tokens.
Delete client¶
Delete in the menu removes a client after confirmation in the Delete client dialog. Afterwards, no access token can be requested with its client ID and client secret.
Access tokens that have already been issued remain valid until they expire, i.e. for at most 5 minutes. To end access immediately, also delete the client’s sessions under Sessions.
Requesting access tokens for clients¶
The access token is requested via HTTP POST at the token endpoint of the system:
Token endpoint:
<base URL>/oauth/token. The base URL is the address at which the system is opened in the browser. The exact address of the token endpoint is provided by<base URL>/.well-known/openid-configurationin the fieldtoken_endpoint.Authentication: client ID and client secret via HTTP Basic Authentication.
Parameter
grant_type=client_credentials.Parameter
scope: The required permissions as scopes, multiple scopes separated by spaces. Only scopes assigned to the client may be requested. Otherwise, the request is rejected. Without thescopeparameter, the token receives no permissions.
Example with curl:
curl -u "<client_id>:<client_secret>" \
-d "grant_type=client_credentials" \
-d "scope=user-management:read" \
<base_url>/oauth/token
The response contains the access token in the field access_token. In requests to the interfaces of the system, it is sent in the HTTP header Authorization: Bearer <access_token>.
The access token is valid for 5 minutes. No refresh token is issued; after expiry, a new access token is requested with the client ID and client secret. If a logout after inactivity is configured under Session settings, it also applies to access tokens of clients.
Issued access tokens are displayed under Sessions with the name of the client as username.
Permission scopes¶
The following table shows the scopes of the user management permissions. The target system and installed extensions provide further permissions with their own scopes. These are described in the documentation of the respective target system.
Permission |
Scope |
|---|---|
User management: read access |
|
User management: write access |
|
User management: administrate access |
|
Sessions¶
The page shows an overview of the system’s active sessions and offers the option to schedule them.
Username: Name of the user who opened the session. For Clients, the name of the client is displayed.
IP: IP address of the client at login. If it is not known,
-is displayed.Start: Time of the last renewal of the access token in local time. The access token is renewed every 5 minutes.
Expires: Expiry of the session in local time. For users, this is the expiry of the refresh token, 5 hours after the last renewal. For clients, this is the expiry of the access token.
Client: Client ID of the client used. Logins via the web interface show the client ID of the client created by the system for this purpose, see Clients.
Identity Provider: Origin of the user account: the local identity provider of the target system for local users and clients, LDAP for users logged in via LDAP.
Menu: Entry point for deleting a session. After confirmation in the Delete session dialog, the session is terminated immediately. Requires administrative access for user management.
Each login creates its own session. A user who has logged in several times, e.g. in several browsers, therefore appears several times.
LDAP¶
The system supports user authentication via an LDAP (Lightweight Directory Access Protocol) server. This allows users to log in using their centrally managed credentials, such as those from an Active Directory or OpenLDAP system.
LDAP is configured in the User Management > LDAP area. Editing requires write access for user management.
LDAP users are not displayed in the user overview. They receive their roles at each login via the Group mappings. Logged-in LDAP users can be recognized under Sessions by the identity provider LDAP.
Enabled: Enables or disables the LDAP connection.
Disabled: LDAP is not used. Users authenticate exclusively through local user accounts.Enabled: Authentication is performed via the configured LDAP server. Local user accounts can also be used.
Encryption: Defines how the connection between the system and the LDAP server is secured. An encrypted connection (LDAPS) should always be used for production systems. Possible values are
No encryption,StartTLSandSSL. The default isSSL.SSL Certificate: Used when an encrypted LDAP connection is set up.
Addstores the certificate of the LDAP server andDeleteremoves it again. The status shows No certificate, Certificate exists, Will upload certificate or Will remove certificate. Uploading and removing only take effect withSave.Host: Address of the LDAP server.
Example:
ldap://ldap.example.comor, if encryption is used,ldaps://ldap.example.com.
Port: The LDAP server’s TCP port. When the encryption method is changed, the port is automatically set to the default port for the selected encryption method.
User ID Attribute: LDAP attribute that stores the unique user ID.
Examples:
objectGUID(Active Directory),uidNumber(OpenLDAP).
Base DN: Defines the starting point for the user search in the LDAP directory. The more specific the Base DN is, the faster the user search will be.
Example:
OU=Users,DC=company,DC=local.
Bind User DN: The user account that the system uses to log in to the LDAP server to retrieve user information. The user must have read permissions for the relevant directory entries.
Example:
CN=ldap-reader,OU=ServiceAccounts,DC=company,DC=local.
Bind User Password: The password for the service account specified under “Bind User DN.”
User Filter: An LDAP filter used to restrict which users are allowed to log in to the system. If no filter is specified, all users within the configured base DN are included. Examples:
Active users only:
(&(objectClass=user)(enabled=TRUE))Only members of a group:
(memberOf=CN=SYSTEM_USERS,OU=Groups,DC=company,DC=local)
User Login Attribute: LDAP attribute used for login.
Examples:
sAMAccountName(Active Directory),uid(OpenLDAP)
Display name attribute: LDAP attribute from which the username displayed in the system is taken.
Examples:
displayName,cn,name.
Group Assignment: Group assignment allows LDAP users to be automatically assigned roles in the system. Three values are defined for each assignment rule:
Attribute Name: The LDAP attribute to be evaluated. Examples:
department,memberOf,title.Attribute value: The value that is compared with the user object. Examples:
Engineering,CN=SYSTEM_ADMIN,OU=Groups,DC=company,DC=local.Roles: The roles that are automatically assigned to the user.
Attribute name |
Attribute value |
Role |
|---|---|---|
memberOf |
CN=SYSTEM_ADMIN,OU=Groups,DC=company,DC=local |
Administrator |
memberOf |
CN=SYSTEM_OPERATOR,OU=Groups,DC=company,DC=local |
Operator |
User settings¶
The page provides entry points for configuring the mechanisms of user management. Saving changes requires administrative access for user management.
Password policies: Opens the dialog for configuring the Password policies.
Session settings: Opens the dialog for configuring the Session settings.
Login policies: Opens a dialog for configuring the Login policies.
Banner Configuration: Opens the dialog for configuring the Banner configuration.
Password policies¶
The dialog box allows you to customize the password policy for the system globally. The default password policy is based on the recommendations of the German Federal Office for Information Security and provides the following parameters:
Username must not be included in password
Minimum length 8 characters
At least 1 digit [0-9]
At least 1 lowercase letter [a-z]
At least 1 uppercase letter [A-Z]
At least 1 special character
Password must not contain username: The mechanism checks whether the username is part of the password.
Minimum password length: The mechanism checks the number of characters contained in the password. Only the total number is considered, not the type of characters.
Minimum lowercase letters: The mechanism checks the number of lowercase letters contained in the password. This includes [a-z].
Minimum uppercase letters: The mechanism checks the number of uppercase letters contained in the password. This includes [A-Z].
Minimum digits: The mechanism checks the number of digits contained in the password. This includes [0-9].
Minimum special characters: The mechanism checks the number of special characters contained in the password. A special character is anything that is neither a letter nor a digit.
Session settings¶
The dialog box allows you to customize the session settings for the system globally. The default setting does not provide for automatic logout.
Logout after inactivity in minutes: After n minutes of inactivity, sessions are terminated automatically. The value
0means no limit. Some functions use so-called long polling, which means that inactivity cannot be detected. Consequently, depending on how the system is used, a logout after the time span has elapsed cannot currently be guaranteed.
Login policies¶
The dialog box allows you to customize the login policy for the system globally. The default login policy does not provide for checking failed logins.
Time frame for consecutive logins in minutes: Observation time interval in minutes. The time interval starts with the first failed login attempt. The value
0means no time limit, i.e. all consecutive failed logins are counted.Maximum number of consecutive failed logins: Number of failed logins that must occur within the configured time interval for the user to be blocked. The value
0disables the check.Block type: Defines whether a user blocked due to failed logins is automatically unlocked after a certain time (Timed) or must be unlocked manually by an admin (Manual unlock). A blocked user is displayed as Deactivated in the user overview and is unlocked via
Activate. The unlocking user requires administrative access for user management.Block duration in minutes: If automatic unlocking is configured, the duration in minutes can be specified here. The default is 15 minutes.
Configuration info: The configuration fields above are related to each other. The configuration is summarized here once again in words to clearly present the configured constellation to the user.
Note
The login policies only apply to local users without the admin role. Admin users and LDAP users are not blocked by failed logins. Brute force attacks on these accounts are countered by the Brute force protection.
Security¶
User management meets the requirements of IEC 62443-4-2 with at least security level 2 and the requirements of EN 18031 (cybersecurity of the Radio Equipment Directive | RED).
A few specific security aspects are described in more detail below.
Default passwords¶
The use of default passwords is not permitted. When starting up the software, you must assign your own password before you can use the system.
When adding a new user, an administrator assigns a password for the new user. This means that the password is known to a third party. The user must assign their own password when logging in for the first time before they can log into the system.
Password security¶
The security of passwords depends on their length and the characters used. Users who have not yet developed a strategy for creating complex passwords may find complex password requirements annoying.
In this case, it is possible to customize the Password policies to suit your own requirements. The customization should meet the security requirements of the application. The default password policy is based on the specifications of the German Federal Office for Information Security.
User Notification for Failed Logins¶
Failed logins can have a variety of reasons, for example:
The user does not exist (anymore) in the system.
The password is incorrect.
The user has been blocked.
From a usability perspective, the user could be told the reason. However, this is ruled out for security reasons, as an attacker could use the information to optimize the attack.
Consequently, regardless of the technical reason for a failed login attempt, the user is always shown the same error message. The error message is Invalid username or password (in German: Ungültiger Benutzername oder Passwort).
Failed login attempts are documented in the event log of the system.
Brute force protection¶
A brute force attack is a method in which an attacker systematically tries all possible combinations of passwords or keys to gain unauthorized access to the system. It is a time-consuming and resource-intensive approach that relies purely on computing power without exploiting vulnerabilities in the target system.
The threat is countered by an exponentially increasing time delay between failed login attempts, so that only a small number of passwords can be checked in a finite amount of time.
After the
The time until the next login attempt is displayed to the user in the login dialog: Too many requests. Please try again in … seconds.